#ifndef MAP_MINICPMMOE_MBM_HPP
#define MAP_MINICPMMOE_MBM_HPP
#include <algorithm>
#include <map>
#include <vector>
#include <condition_variable>

using namespace std;

int mbm_load_layer_idx;
vector<int> mbm_load_expert_idxs;
bool do_mbm_load = false;
bool mbm_finish = false;

std::vector<std::unique_ptr<std::mutex>> mtxs;             // vector<std::mutex> mtxs;             // 互斥锁，用于保护共享资源
std::vector<std::unique_ptr<std::condition_variable>> cvs; // 条件变量，用于线程间同步
vector<int> dones;                                         // 标志变量，用于表示数据是否已被修改
std::vector<std::unique_lock<std::mutex>> locks;           // 互斥锁，用于保护共享资源

std::vector<std::map<std::vector<int>, std::vector<std::vector<int>>, std::less<>>> mbm_maps;

vector<vector<int>> mbm_v;

int mbm_num_max_experts = 4;

int mbm_queue_remove(std::vector<int> &mbm_vector, std::vector<int> expert_idxs) {
    int result = -1; // 初始化返回结果为 -1，表示未找到符合条件的元素
    auto it = mbm_vector.begin();
    while (it != mbm_vector.end()) {
        int element = *it; // 获取当前指向的元素
        // 使用std::find查找元素是否在expert_idxs向量中
        if (std::find(expert_idxs.begin(), expert_idxs.end(), element) == expert_idxs.end()) {
            // std::cout << element << " "; // 如果不在，打印该元素
            result = element;          // 更新返回结果为当前找到的符合条件的元素
            it = mbm_vector.erase(it); // 从向量中删除该元素，erase返回指向下一个元素的迭代器
            break;                     // 找到符合条件的元素后，退出循环
        } else {
            ++it; // 如果元素在expert_idxs中，继续检查下一个元素
        }
    }
    // std::cout << std::endl;
    return result;
}

inline void init_mbm_maps() {
    mbm_maps.resize(39 + 1);
    mbm_maps[0] = {
        {{3, 5}, {
                     {1, 4},
                     {2, 7},
                 }},
        {{0, 7}, {
                     {3, 5},
                     {0, 6},
                 }},
        {{0, 1}, {
                     {5, 6},
                     {0, 5},
                 }},
        {{2, 3}, {
                     {2, 7},
                     {1, 4},
                 }},
        {{1, 7}, {
                     {5, 6},
                     {3, 5},
                 }},
        {{2, 7}, {
                     {2, 3},
                     {0, 3},
                 }},
        {{1, 2}, {
                     {3, 5},
                     {5, 6},
                 }},
        {{4, 6}, {
                     {0, 3},
                     {0, 2},
                 }},
        {{0, 4}, {
                     {0, 5},
                     {0, 3},
                 }},
        {{0, 2}, {
                     {2, 7},
                     {2, 4},
                 }},
        {{2, 6}, {
                     {1, 4},
                     {1, 7},
                 }},
        {{4, 7}, {
                     {3, 6},
                     {0, 3},
                 }},
        {{5, 6}, {
                     {1, 4},
                     {1, 7},
                 }},
        {{3, 6}, {
                     {1, 4},
                     {1, 7},
                 }},
        {{2, 5}, {
                     {1, 4},
                     {1, 7},
                 }},
        {{0, 3}, {
                     {2, 7},
                     {2, 4},
                 }},
        {{1, 4}, {
                     {5, 6},
                     {0, 6},
                 }},
        {{0, 6}, {
                     {2, 7},
                     {0, 3},
                 }},
        {{2, 4}, {
                     {0, 6},
                     {0, 3},
                 }},
        {{1, 6}, {
                     {5, 6},
                     {0, 6},
                 }},
        {{6, 7}, {
                     {0, 3},
                     {2, 3},
                 }},
        {{3, 4}, {
                     {1, 4},
                     {2, 4},
                 }},
        {{0, 5}, {
                     {2, 7},
                     {1, 4},
                 }},
        {{4, 5}, {
                     {1, 3},
                     {2, 7},
                 }},
        {{5, 7}, {
                     {0, 4},
                     {2, 7},
                 }},
    };

    mbm_maps[1] = {
        {{2, 7}, {
                     {0, 3},
                     {1, 3},
                 }},
        {{1, 4}, {
                     {0, 3},
                     {2, 3},
                 }},
        {{4, 5}, {
                     {5, 7},
                     {5, 6},
                 }},
        {{0, 5}, {
                     {5, 6},
                     {5, 7},
                 }},
        {{5, 6}, {
                     {6, 7},
                     {5, 7},
                 }},
        {{4, 7}, {
                     {0, 3},
                     {1, 2},
                 }},
        {{2, 3}, {
                     {2, 4},
                     {2, 7},
                 }},
        {{0, 2}, {
                     {1, 2},
                     {2, 6},
                 }},
        {{0, 6}, {
                     {1, 6},
                     {5, 7},
                 }},
        {{3, 5}, {
                     {5, 7},
                     {2, 4},
                 }},
        {{0, 3}, {
                     {2, 6},
                     {2, 4},
                 }},
        {{1, 7}, {
                     {2, 3},
                     {0, 3},
                 }},
        {{2, 4}, {
                     {0, 3},
                     {0, 4},
                 }},
        {{3, 6}, {
                     {1, 4},
                     {4, 6},
                 }},
        {{3, 4}, {
                     {3, 4},
                     {4, 7},
                 }},
        {{0, 4}, {
                     {5, 6},
                     {2, 5},
                 }},
        {{2, 6}, {
                     {1, 4},
                     {1, 7},
                 }},
        {{3, 7}, {
                     {1, 4},
                     {1, 2},
                 }},
        {{0, 7}, {
                     {2, 4},
                     {1, 2},
                 }},
        {{1, 2}, {
                     {0, 3},
                     {3, 7},
                 }},
        {{1, 3}, {
                     {3, 4},
                     {4, 7},
                 }},
        {{5, 7}, {
                     {2, 4},
                     {1, 4},
                 }},
        {{0, 1}, {
                     {2, 7},
                     {2, 3},
                 }},
        {{1, 5}, {
                     {0, 3},
                     {5, 6},
                 }},
        {{6, 7}, {
                     {2, 6},
                     {1, 6},
                 }},
        {{4, 6}, {
                     {4, 7},
                     {5, 6},
                 }},
        {{2, 5}, {
                     {2, 4},
                     {4, 6},
                 }},
        {{1, 6}, {
                     {5, 7},
                     {0, 3},
                 }},
    };

    mbm_maps[2] = {
        {{0, 2}, {
                     {3, 4},
                     {3, 7},
                 }},
        {{0, 3}, {
                     {3, 7},
                     {0, 6},
                 }},
        {{6, 7}, {
                     {1, 5},
                     {1, 6},
                 }},
        {{2, 7}, {
                     {2, 7},
                     {5, 7},
                 }},
        {{4, 7}, {
                     {2, 7},
                     {1, 5},
                 }},
        {{1, 2}, {
                     {4, 6},
                     {3, 4},
                 }},
        {{2, 4}, {
                     {2, 7},
                     {1, 2},
                 }},
        {{5, 6}, {
                     {1, 6},
                     {1, 5},
                 }},
        {{1, 4}, {
                     {2, 5},
                     {2, 4},
                 }},
        {{4, 6}, {
                     {0, 6},
                     {1, 5},
                 }},
        {{0, 4}, {
                     {0, 6},
                     {3, 7},
                 }},
        {{1, 3}, {
                     {4, 6},
                     {3, 4},
                 }},
        {{2, 6}, {
                     {2, 7},
                     {5, 7},
                 }},
        {{3, 7}, {
                     {3, 7},
                     {6, 7},
                 }},
        {{5, 7}, {
                     {1, 6},
                     {1, 5},
                 }},
        {{0, 1}, {
                     {0, 6},
                     {4, 6},
                 }},
        {{4, 5}, {
                     {1, 6},
                     {0, 1},
                 }},
        {{2, 3}, {
                     {3, 7},
                     {3, 4},
                 }},
        {{3, 4}, {
                     {2, 7},
                     {1, 2},
                 }},
        {{1, 7}, {
                     {0, 1},
                     {0, 5},
                 }},
        {{2, 5}, {
                     {1, 6},
                     {1, 2},
                 }},
        {{0, 6}, {
                     {3, 6},
                     {0, 3},
                 }},
        {{1, 5}, {
                     {0, 4},
                     {2, 4},
                 }},
        {{0, 5}, {
                     {0, 3},
                     {0, 6},
                 }},
        {{1, 6}, {
                     {1, 5},
                     {0, 1},
                 }},
        {{0, 7}, {
                     {3, 7},
                     {3, 6},
                 }},
        {{3, 6}, {
                     {1, 6},
                     {3, 4},
                 }},
        {{3, 5}, {
                     {1, 6},
                     {0, 3},
                 }},
    };

    mbm_maps[3] = {
        {{2, 7}, {
                     {5, 6},
                     {3, 5},
                 }},
        {{0, 1}, {
                     {3, 6},
                     {2, 3},
                 }},
        {{1, 6}, {
                     {6, 7},
                     {3, 6},
                 }},
        {{0, 6}, {
                     {2, 5},
                     {3, 6},
                 }},
        {{0, 2}, {
                     {1, 7},
                     {1, 4},
                 }},
        {{2, 4}, {
                     {1, 4},
                     {0, 1},
                 }},
        {{4, 6}, {
                     {2, 5},
                     {2, 3},
                 }},
        {{1, 2}, {
                     {0, 7},
                     {1, 7},
                 }},
        {{5, 7}, {
                     {4, 6},
                     {4, 7},
                 }},
        {{1, 5}, {
                     {0, 7},
                     {4, 7},
                 }},
        {{0, 3}, {
                     {1, 4},
                     {2, 5},
                 }},
        {{4, 5}, {
                     {2, 5},
                     {0, 1},
                 }},
        {{4, 7}, {
                     {2, 5},
                     {5, 7},
                 }},
        {{3, 4}, {
                     {2, 5},
                     {0, 5},
                 }},
        {{1, 7}, {
                     {2, 3},
                     {4, 7},
                 }},
        {{5, 6}, {
                     {2, 5},
                     {1, 6},
                 }},
        {{3, 6}, {
                     {2, 5},
                     {2, 6},
                 }},
        {{6, 7}, {
                     {2, 5},
                     {2, 3},
                 }},
        {{0, 7}, {
                     {2, 5},
                     {1, 7},
                 }},
        {{0, 4}, {
                     {0, 1},
                     {1, 4},
                 }},
        {{0, 5}, {
                     {1, 6},
                     {0, 1},
                 }},
        {{2, 3}, {
                     {1, 4},
                     {0, 1},
                 }},
        {{3, 7}, {
                     {2, 5},
                     {0, 6},
                 }},
        {{2, 5}, {
                     {1, 7},
                     {1, 6},
                 }},
        {{3, 5}, {
                     {3, 5},
                     {0, 5},
                 }},
        {{1, 4}, {
                     {0, 7},
                     {0, 5},
                 }},
        {{2, 6}, {
                     {6, 7},
                     {1, 7},
                 }},
        {{1, 3}, {
                     {0, 4},
                     {0, 7},
                 }},
    };

    mbm_maps[4] = {
        {{3, 4}, {
                     {5, 6},
                     {3, 5},
                 }},
        {{2, 5}, {
                     {0, 4},
                     {4, 7},
                 }},
        {{6, 7}, {
                     {2, 3},
                     {5, 7},
                 }},
        {{0, 6}, {
                     {2, 3},
                     {3, 6},
                 }},
        {{0, 3}, {
                     {3, 7},
                     {2, 6},
                 }},
        {{1, 3}, {
                     {5, 6},
                     {3, 5},
                 }},
        {{1, 2}, {
                     {0, 1},
                     {0, 2},
                 }},
        {{0, 7}, {
                     {2, 3},
                     {1, 6},
                 }},
        {{2, 7}, {
                     {4, 7},
                     {5, 7},
                 }},
        {{4, 6}, {
                     {2, 3},
                     {4, 7},
                 }},
        {{4, 7}, {
                     {1, 5},
                     {1, 6},
                 }},
        {{1, 6}, {
                     {3, 5},
                     {2, 3},
                 }},
        {{4, 5}, {
                     {4, 6},
                     {5, 6},
                 }},
        {{3, 7}, {
                     {3, 7},
                     {5, 7},
                 }},
        {{1, 4}, {
                     {4, 5},
                     {1, 5},
                 }},
        {{3, 5}, {
                     {4, 7},
                     {1, 4},
                 }},
        {{5, 6}, {
                     {6, 7},
                     {0, 7},
                 }},
        {{1, 7}, {
                     {2, 3},
                     {4, 7},
                 }},
        {{0, 5}, {
                     {4, 7},
                     {1, 4},
                 }},
        {{1, 5}, {
                     {1, 6},
                     {0, 4},
                 }},
        {{2, 3}, {
                     {5, 7},
                     {2, 5},
                 }},
        {{0, 1}, {
                     {2, 3},
                     {1, 3},
                 }},
        {{0, 2}, {
                     {0, 1},
                     {1, 4},
                 }},
        {{3, 6}, {
                     {3, 7},
                     {5, 7},
                 }},
        {{2, 4}, {
                     {4, 7},
                     {0, 5},
                 }},
        {{5, 7}, {
                     {3, 7},
                     {4, 7},
                 }},
        {{0, 4}, {
                     {2, 6},
                     {2, 3},
                 }},
        {{2, 6}, {
                     {4, 7},
                     {0, 7},
                 }},
    };

    mbm_maps[5] = {
        {{4, 5}, {
                     {1, 2},
                     {0, 4},
                 }},
        {{3, 6}, {
                     {2, 5},
                     {6, 7},
                 }},
        {{3, 5}, {
                     {0, 2},
                     {0, 3},
                 }},
        {{0, 5}, {
                     {3, 7},
                     {2, 5},
                 }},
        {{0, 2}, {
                     {2, 5},
                     {3, 7},
                 }},
        {{5, 6}, {
                     {0, 3},
                     {6, 7},
                 }},
        {{2, 3}, {
                     {1, 6},
                     {6, 7},
                 }},
        {{4, 7}, {
                     {3, 4},
                     {2, 5},
                 }},
        {{1, 6}, {
                     {6, 7},
                     {1, 7},
                 }},
        {{1, 3}, {
                     {6, 7},
                     {0, 2},
                 }},
        {{1, 7}, {
                     {3, 4},
                     {0, 3},
                 }},
        {{1, 2}, {
                     {6, 7},
                     {2, 5},
                 }},
        {{5, 7}, {
                     {0, 3},
                     {0, 2},
                 }},
        {{6, 7}, {
                     {0, 3},
                     {0, 7},
                 }},
        {{4, 6}, {
                     {0, 5},
                     {4, 7},
                 }},
        {{0, 7}, {
                     {1, 7},
                     {0, 3},
                 }},
        {{1, 5}, {
                     {1, 7},
                     {6, 7},
                 }},
        {{0, 1}, {
                     {4, 7},
                     {6, 7},
                 }},
        {{0, 4}, {
                     {4, 7},
                     {3, 7},
                 }},
        {{2, 7}, {
                     {0, 3},
                     {3, 4},
                 }},
        {{3, 4}, {
                     {2, 5},
                     {1, 2},
                 }},
        {{3, 7}, {
                     {0, 3},
                     {0, 2},
                 }},
        {{0, 3}, {
                     {6, 7},
                     {3, 6},
                 }},
        {{0, 6}, {
                     {6, 7},
                     {4, 7},
                 }},
        {{1, 4}, {
                     {4, 7},
                     {3, 4},
                 }},
        {{2, 6}, {
                     {6, 7},
                     {4, 7},
                 }},
        {{2, 5}, {
                     {6, 7},
                     {0, 3},
                 }},
        {{2, 4}, {
                     {1, 2},
                     {2, 5},
                 }},
    };

    mbm_maps[6] = {
        {{1, 4}, {
                     {0, 5},
                     {0, 3},
                 }},
        {{0, 4}, {
                     {6, 7},
                     {3, 7},
                 }},
        {{0, 2}, {
                     {1, 7},
                     {4, 6},
                 }},
        {{0, 3}, {
                     {6, 7},
                     {4, 6},
                 }},
        {{3, 4}, {
                     {2, 3},
                     {2, 5},
                 }},
        {{2, 5}, {
                     {0, 4},
                     {1, 4},
                 }},
        {{0, 1}, {
                     {1, 7},
                     {6, 7},
                 }},
        {{3, 6}, {
                     {2, 3},
                     {1, 2},
                 }},
        {{3, 5}, {
                     {1, 2},
                     {2, 4},
                 }},
        {{4, 7}, {
                     {0, 5},
                     {0, 3},
                 }},
        {{0, 7}, {
                     {1, 6},
                     {1, 7},
                 }},
        {{1, 2}, {
                     {0, 4},
                     {0, 5},
                 }},
        {{0, 6}, {
                     {6, 7},
                     {1, 6},
                 }},
        {{1, 3}, {
                     {1, 3},
                     {0, 4},
                 }},
        {{3, 7}, {
                     {2, 5},
                     {1, 3},
                 }},
        {{1, 5}, {
                     {0, 4},
                     {1, 3},
                 }},
        {{0, 5}, {
                     {4, 6},
                     {1, 7},
                 }},
        {{4, 6}, {
                     {0, 3},
                     {3, 7},
                 }},
        {{2, 4}, {
                     {1, 6},
                     {0, 3},
                 }},
        {{6, 7}, {
                     {1, 2},
                     {2, 6},
                 }},
        {{1, 7}, {
                     {1, 2},
                     {1, 7},
                 }},
        {{1, 6}, {
                     {1, 2},
                     {2, 6},
                 }},
        {{5, 7}, {
                     {0, 5},
                     {2, 5},
                 }},
        {{4, 5}, {
                     {0, 5},
                     {0, 3},
                 }},
        {{2, 6}, {
                     {2, 4},
                     {1, 7},
                 }},
        {{2, 3}, {
                     {1, 7},
                     {6, 7},
                 }},
        {{2, 7}, {
                     {1, 2},
                     {1, 6},
                 }},
        {{5, 6}, {
                     {6, 7},
                     {2, 6},
                 }},
    };

    mbm_maps[7] = {
        {{0, 4}, {
                     {0, 4},
                     {0, 6},
                 }},
        {{0, 3}, {
                     {0, 3},
                     {0, 6},
                 }},
        {{0, 1}, {
                     {3, 4},
                     {1, 2},
                 }},
        {{1, 4}, {
                     {1, 7},
                     {4, 7},
                 }},
        {{6, 7}, {
                     {1, 7},
                     {1, 4},
                 }},
        {{1, 6}, {
                     {5, 7},
                     {1, 7},
                 }},
        {{0, 5}, {
                     {0, 3},
                     {3, 6},
                 }},
        {{4, 6}, {
                     {1, 7},
                     {1, 6},
                 }},
        {{3, 5}, {
                     {0, 3},
                     {3, 6},
                 }},
        {{1, 5}, {
                     {3, 6},
                     {2, 5},
                 }},
        {{0, 7}, {
                     {3, 4},
                     {4, 5},
                 }},
        {{3, 6}, {
                     {0, 3},
                     {0, 4},
                 }},
        {{3, 7}, {
                     {0, 4},
                     {0, 3},
                 }},
        {{2, 4}, {
                     {4, 7},
                     {1, 6},
                 }},
        {{0, 2}, {
                     {0, 5},
                     {0, 3},
                 }},
        {{5, 6}, {
                     {1, 6},
                     {3, 6},
                 }},
        {{4, 5}, {
                     {1, 6},
                     {5, 6},
                 }},
        {{1, 7}, {
                     {4, 7},
                     {3, 4},
                 }},
        {{0, 6}, {
                     {0, 3},
                     {3, 6},
                 }},
        {{1, 2}, {
                     {2, 7},
                     {2, 5},
                 }},
        {{4, 7}, {
                     {1, 7},
                     {1, 6},
                 }},
        {{2, 6}, {
                     {2, 7},
                     {5, 7},
                 }},
        {{2, 3}, {
                     {0, 3},
                     {0, 5},
                 }},
        {{1, 3}, {
                     {0, 2},
                     {2, 3},
                 }},
        {{3, 4}, {
                     {4, 6},
                     {2, 4},
                 }},
        {{5, 7}, {
                     {3, 6},
                     {1, 6},
                 }},
        {{2, 7}, {
                     {1, 7},
                     {0, 6},
                 }},
        {{2, 5}, {
                     {0, 3},
                     {3, 6},
                 }},
    };

    mbm_maps[8] = {
        {{0, 3}, {
                     {1, 3},
                     {1, 5},
                 }},
        {{1, 7}, {
                     {0, 5},
                     {0, 4},
                 }},
        {{5, 7}, {
                     {2, 3},
                     {4, 5},
                 }},
        {{4, 7}, {
                     {6, 7},
                     {0, 6},
                 }},
        {{3, 4}, {
                     {3, 6},
                     {6, 7},
                 }},
        {{3, 7}, {
                     {4, 5},
                     {0, 3},
                 }},
        {{0, 5}, {
                     {2, 5},
                     {1, 5},
                 }},
        {{2, 5}, {
                     {2, 3},
                     {4, 5},
                 }},
        {{0, 4}, {
                     {1, 5},
                     {5, 7},
                 }},
        {{4, 5}, {
                     {6, 7},
                     {3, 6},
                 }},
        {{0, 2}, {
                     {5, 7},
                     {4, 5},
                 }},
        {{2, 4}, {
                     {5, 7},
                     {6, 7},
                 }},
        {{2, 3}, {
                     {5, 7},
                     {4, 5},
                 }},
        {{1, 6}, {
                     {1, 4},
                     {6, 7},
                 }},
        {{3, 6}, {
                     {6, 7},
                     {0, 6},
                 }},
        {{1, 5}, {
                     {1, 4},
                     {2, 4},
                 }},
        {{2, 7}, {
                     {4, 5},
                     {0, 5},
                 }},
        {{0, 6}, {
                     {1, 5},
                     {5, 7},
                 }},
        {{2, 6}, {
                     {6, 7},
                     {5, 7},
                 }},
        {{6, 7}, {
                     {0, 6},
                     {1, 4},
                 }},
        {{3, 5}, {
                     {1, 3},
                     {0, 6},
                 }},
        {{1, 4}, {
                     {6, 7},
                     {3, 6},
                 }},
        {{1, 2}, {
                     {5, 7},
                     {1, 4},
                 }},
        {{0, 1}, {
                     {0, 5},
                     {5, 7},
                 }},
        {{1, 3}, {
                     {5, 7},
                     {3, 6},
                 }},
        {{4, 6}, {
                     {5, 7},
                     {3, 5},
                 }},
        {{0, 7}, {
                     {2, 5},
                     {1, 5},
                 }},
        {{5, 6}, {
                     {1, 4},
                     {0, 6},
                 }},
    };

    mbm_maps[9] = {
        {{6, 7}, {
                     {5, 7},
                     {0, 7},
                 }},
        {{5, 7}, {
                     {1, 7},
                     {0, 3},
                 }},
        {{0, 5}, {
                     {1, 4},
                     {2, 5},
                 }},
        {{0, 4}, {
                     {1, 4},
                     {1, 6},
                 }},
        {{4, 6}, {
                     {3, 7},
                     {1, 6},
                 }},
        {{0, 6}, {
                     {5, 7},
                     {4, 5},
                 }},
        {{3, 6}, {
                     {5, 7},
                     {6, 7},
                 }},
        {{1, 5}, {
                     {2, 5},
                     {0, 3},
                 }},
        {{2, 5}, {
                     {0, 3},
                     {0, 7},
                 }},
        {{3, 4}, {
                     {6, 7},
                     {0, 3},
                 }},
        {{3, 5}, {
                     {0, 3},
                     {3, 7},
                 }},
        {{2, 3}, {
                     {1, 4},
                     {1, 2},
                 }},
        {{4, 5}, {
                     {4, 6},
                     {0, 3},
                 }},
        {{1, 3}, {
                     {0, 3},
                     {0, 2},
                 }},
        {{4, 7}, {
                     {0, 3},
                     {0, 7},
                 }},
        {{2, 7}, {
                     {0, 3},
                     {0, 7},
                 }},
        {{0, 7}, {
                     {2, 5},
                     {2, 6},
                 }},
        {{3, 7}, {
                     {0, 3},
                     {0, 7},
                 }},
        {{1, 4}, {
                     {1, 5},
                     {5, 6},
                 }},
        {{1, 6}, {
                     {1, 5},
                     {2, 4},
                 }},
        {{1, 2}, {
                     {0, 3},
                     {0, 2},
                 }},
        {{5, 6}, {
                     {3, 7},
                     {0, 3},
                 }},
        {{1, 7}, {
                     {0, 3},
                     {0, 7},
                 }},
        {{0, 3}, {
                     {6, 7},
                     {1, 2},
                 }},
        {{0, 1}, {
                     {2, 5},
                     {4, 5},
                 }},
        {{2, 4}, {
                     {1, 2},
                     {0, 3},
                 }},
        {{0, 2}, {
                     {1, 4},
                     {2, 5},
                 }},
        {{2, 6}, {
                     {1, 6},
                     {0, 3},
                 }},
    };

    mbm_maps[10] = {
        {{2, 4}, {
                     {0, 1},
                     {1, 2},
                 }},
        {{0, 3}, {
                     {1, 5},
                     {0, 1},
                 }},
        {{5, 6}, {
                     {2, 7},
                     {6, 7},
                 }},
        {{1, 5}, {
                     {2, 7},
                     {2, 3},
                 }},
        {{2, 5}, {
                     {2, 7},
                     {0, 6},
                 }},
        {{5, 7}, {
                     {3, 4},
                     {1, 5},
                 }},
        {{3, 7}, {
                     {1, 5},
                     {3, 4},
                 }},
        {{1, 4}, {
                     {2, 6},
                     {3, 6},
                 }},
        {{0, 2}, {
                     {0, 1},
                     {1, 5},
                 }},
        {{4, 5}, {
                     {6, 7},
                     {0, 6},
                 }},
        {{4, 7}, {
                     {1, 5},
                     {1, 2},
                 }},
        {{0, 7}, {
                     {1, 5},
                     {0, 7},
                 }},
        {{4, 6}, {
                     {2, 3},
                     {0, 3},
                 }},
        {{3, 4}, {
                     {1, 5},
                     {1, 4},
                 }},
        {{1, 6}, {
                     {2, 7},
                     {2, 3},
                 }},
        {{0, 5}, {
                     {1, 5},
                     {4, 5},
                 }},
        {{6, 7}, {
                     {3, 4},
                     {4, 7},
                 }},
        {{0, 4}, {
                     {0, 1},
                     {1, 5},
                 }},
        {{0, 6}, {
                     {0, 1},
                     {1, 5},
                 }},
        {{1, 7}, {
                     {4, 7},
                     {3, 4},
                 }},
        {{3, 5}, {
                     {0, 5},
                     {0, 7},
                 }},
        {{1, 2}, {
                     {2, 6},
                     {3, 6},
                 }},
        {{2, 6}, {
                     {0, 6},
                     {0, 7},
                 }},
        {{2, 7}, {
                     {1, 5},
                     {4, 5},
                 }},
        {{3, 6}, {
                     {4, 7},
                     {4, 5},
                 }},
        {{2, 3}, {
                     {0, 5},
                     {0, 4},
                 }},
        {{1, 3}, {
                     {4, 7},
                     {6, 7},
                 }},
        {{0, 1}, {
                     {1, 5},
                     {0, 1},
                 }},
    };

    mbm_maps[11] = {
        {{0, 1}, {
                     {5, 7},
                     {2, 7},
                 }},
        {{5, 6}, {
                     {3, 7},
                     {1, 7},
                 }},
        {{6, 7}, {
                     {0, 5},
                     {0, 2},
                 }},
        {{1, 5}, {
                     {5, 7},
                     {1, 4},
                 }},
        {{4, 7}, {
                     {0, 5},
                     {0, 7},
                 }},
        {{2, 6}, {
                     {2, 7},
                     {2, 6},
                 }},
        {{0, 5}, {
                     {0, 2},
                     {1, 2},
                 }},
        {{5, 7}, {
                     {2, 7},
                     {3, 7},
                 }},
        {{0, 7}, {
                     {5, 7},
                     {3, 7},
                 }},
        {{4, 6}, {
                     {0, 5},
                     {1, 4},
                 }},
        {{3, 6}, {
                     {1, 3},
                     {3, 6},
                 }},
        {{2, 3}, {
                     {0, 3},
                     {3, 6},
                 }},
        {{2, 7}, {
                     {3, 6},
                     {3, 7},
                 }},
        {{3, 4}, {
                     {0, 5},
                     {4, 5},
                 }},
        {{1, 4}, {
                     {2, 5},
                     {3, 4},
                 }},
        {{0, 2}, {
                     {0, 3},
                     {3, 7},
                 }},
        {{0, 4}, {
                     {6, 7},
                     {0, 7},
                 }},
        {{1, 7}, {
                     {5, 7},
                     {2, 7},
                 }},
        {{4, 5}, {
                     {0, 2},
                     {6, 7},
                 }},
        {{0, 6}, {
                     {3, 7},
                     {2, 7},
                 }},
        {{2, 5}, {
                     {3, 6},
                     {0, 3},
                 }},
        {{1, 2}, {
                     {2, 7},
                     {0, 7},
                 }},
        {{1, 6}, {
                     {2, 5},
                     {3, 4},
                 }},
        {{1, 3}, {
                     {5, 7},
                     {4, 5},
                 }},
        {{2, 4}, {
                     {3, 6},
                     {0, 3},
                 }},
        {{0, 3}, {
                     {0, 3},
                     {0, 7},
                 }},
        {{3, 7}, {
                     {3, 7},
                     {5, 7},
                 }},
        {{3, 5}, {
                     {1, 4},
                     {0, 3},
                 }},
    };

    mbm_maps[12] = {
        {{2, 6}, {
                     {0, 4},
                     {1, 6},
                 }},
        {{3, 7}, {
                     {1, 5},
                     {0, 6},
                 }},
        {{1, 2}, {
                     {0, 4},
                     {2, 4},
                 }},
        {{6, 7}, {
                     {2, 6},
                     {1, 7},
                 }},
        {{5, 6}, {
                     {5, 7},
                     {5, 6},
                 }},
        {{2, 7}, {
                     {0, 4},
                     {1, 6},
                 }},
        {{5, 7}, {
                     {1, 2},
                     {1, 7},
                 }},
        {{2, 5}, {
                     {3, 6},
                     {0, 7},
                 }},
        {{0, 5}, {
                     {5, 6},
                     {2, 7},
                 }},
        {{0, 2}, {
                     {0, 4},
                     {4, 6},
                 }},
        {{1, 3}, {
                     {0, 5},
                     {0, 4},
                 }},
        {{1, 4}, {
                     {1, 6},
                     {0, 4},
                 }},
        {{1, 6}, {
                     {5, 7},
                     {1, 2},
                 }},
        {{1, 7}, {
                     {2, 5},
                     {6, 7},
                 }},
        {{0, 7}, {
                     {0, 3},
                     {0, 7},
                 }},
        {{4, 7}, {
                     {1, 2},
                     {1, 7},
                 }},
        {{2, 4}, {
                     {4, 6},
                     {1, 2},
                 }},
        {{4, 5}, {
                     {1, 2},
                     {0, 4},
                 }},
        {{0, 3}, {
                     {0, 3},
                     {3, 5},
                 }},
        {{2, 3}, {
                     {0, 4},
                     {3, 5},
                 }},
        {{3, 6}, {
                     {1, 6},
                     {1, 7},
                 }},
        {{0, 6}, {
                     {5, 6},
                     {3, 5},
                 }},
        {{3, 4}, {
                     {2, 7},
                     {1, 2},
                 }},
        {{3, 5}, {
                     {0, 7},
                     {1, 2},
                 }},
        {{4, 6}, {
                     {2, 7},
                     {1, 2},
                 }},
        {{0, 1}, {
                     {0, 3},
                     {0, 4},
                 }},
        {{1, 5}, {
                     {1, 2},
                     {1, 4},
                 }},
        {{0, 4}, {
                     {1, 2},
                     {4, 5},
                 }},
    };

    mbm_maps[13] = {
        {{0, 3}, {
                     {0, 4},
                     {4, 5},
                 }},
        {{0, 4}, {
                     {4, 5},
                     {1, 5},
                 }},
        {{5, 6}, {
                     {0, 6},
                     {2, 6},
                 }},
        {{2, 5}, {
                     {3, 6},
                     {0, 4},
                 }},
        {{0, 5}, {
                     {1, 5},
                     {1, 4},
                 }},
        {{1, 3}, {
                     {3, 4},
                     {0, 4},
                 }},
        {{1, 6}, {
                     {2, 4},
                     {2, 3},
                 }},
        {{6, 7}, {
                     {3, 4},
                     {0, 3},
                 }},
        {{4, 6}, {
                     {6, 7},
                     {0, 6},
                 }},
        {{0, 1}, {
                     {3, 7},
                     {0, 4},
                 }},
        {{3, 4}, {
                     {3, 6},
                     {5, 6},
                 }},
        {{2, 4}, {
                     {1, 7},
                     {2, 3},
                 }},
        {{4, 5}, {
                     {1, 5},
                     {0, 1},
                 }},
        {{1, 4}, {
                     {0, 6},
                     {0, 1},
                 }},
        {{1, 2}, {
                     {3, 6},
                     {0, 3},
                 }},
        {{2, 6}, {
                     {3, 6},
                     {0, 3},
                 }},
        {{0, 6}, {
                     {2, 3},
                     {0, 4},
                 }},
        {{4, 7}, {
                     {0, 4},
                     {4, 5},
                 }},
        {{1, 5}, {
                     {3, 7},
                     {0, 1},
                 }},
        {{3, 7}, {
                     {2, 3},
                     {3, 5},
                 }},
        {{2, 7}, {
                     {0, 4},
                     {3, 6},
                 }},
        {{0, 2}, {
                     {0, 4},
                     {3, 6},
                 }},
        {{2, 3}, {
                     {3, 6},
                     {3, 4},
                 }},
        {{0, 7}, {
                     {2, 5},
                     {3, 5},
                 }},
        {{3, 5}, {
                     {0, 1},
                     {0, 4},
                 }},
        {{5, 7}, {
                     {4, 5},
                     {1, 5},
                 }},
        {{1, 7}, {
                     {0, 4},
                     {4, 5},
                 }},
        {{3, 6}, {
                     {2, 6},
                     {5, 6},
                 }},
    };

    mbm_maps[14] = {
        {{2, 6}, {
                     {2, 3},
                     {3, 7},
                 }},
        {{5, 6}, {
                     {2, 3},
                     {3, 5},
                 }},
        {{3, 5}, {
                     {0, 5},
                     {3, 5},
                 }},
        {{0, 1}, {
                     {2, 6},
                     {0, 2},
                 }},
        {{2, 4}, {
                     {2, 6},
                     {2, 5},
                 }},
        {{4, 5}, {
                     {6, 7},
                     {1, 6},
                 }},
        {{0, 2}, {
                     {6, 7},
                     {1, 5},
                 }},
        {{0, 3}, {
                     {0, 2},
                     {1, 5},
                 }},
        {{1, 3}, {
                     {5, 7},
                     {3, 4},
                 }},
        {{1, 6}, {
                     {1, 2},
                     {5, 7},
                 }},
        {{0, 7}, {
                     {6, 7},
                     {0, 7},
                 }},
        {{0, 6}, {
                     {3, 6},
                     {6, 7},
                 }},
        {{3, 4}, {
                     {0, 2},
                     {2, 4},
                 }},
        {{1, 4}, {
                     {1, 2},
                     {2, 6},
                 }},
        {{1, 5}, {
                     {2, 6},
                     {2, 7},
                 }},
        {{3, 7}, {
                     {5, 7},
                     {5, 6},
                 }},
        {{2, 7}, {
                     {5, 6},
                     {0, 3},
                 }},
        {{1, 7}, {
                     {5, 7},
                     {1, 5},
                 }},
        {{5, 7}, {
                     {0, 7},
                     {5, 7},
                 }},
        {{6, 7}, {
                     {3, 5},
                     {5, 7},
                 }},
        {{0, 4}, {
                     {1, 4},
                     {1, 5},
                 }},
        {{0, 5}, {
                     {2, 6},
                     {0, 6},
                 }},
        {{4, 6}, {
                     {1, 4},
                     {1, 5},
                 }},
        {{4, 7}, {
                     {0, 3},
                     {5, 6},
                 }},
        {{2, 5}, {
                     {0, 2},
                     {6, 7},
                 }},
        {{2, 3}, {
                     {5, 6},
                     {4, 7},
                 }},
        {{1, 2}, {
                     {0, 3},
                     {2, 6},
                 }},
        {{3, 6}, {
                     {3, 5},
                     {0, 2},
                 }},
    };

    mbm_maps[15] = {
        {{5, 6}, {
                     {1, 5},
                     {4, 5},
                 }},
        {{0, 5}, {
                     {1, 4},
                     {1, 5},
                 }},
        {{0, 2}, {
                     {1, 6},
                     {4, 6},
                 }},
        {{0, 1}, {
                     {2, 7},
                     {0, 3},
                 }},
        {{1, 3}, {
                     {0, 7},
                     {3, 7},
                 }},
        {{1, 5}, {
                     {0, 3},
                     {0, 7},
                 }},
        {{4, 5}, {
                     {0, 5},
                     {0, 3},
                 }},
        {{0, 6}, {
                     {0, 2},
                     {0, 5},
                 }},
        {{3, 4}, {
                     {1, 4},
                     {0, 7},
                 }},
        {{4, 6}, {
                     {2, 6},
                     {0, 3},
                 }},
        {{3, 6}, {
                     {4, 5},
                     {2, 6},
                 }},
        {{0, 3}, {
                     {2, 7},
                     {2, 5},
                 }},
        {{1, 6}, {
                     {2, 7},
                     {0, 2},
                 }},
        {{2, 6}, {
                     {1, 6},
                     {5, 7},
                 }},
        {{2, 7}, {
                     {1, 4},
                     {1, 6},
                 }},
        {{1, 4}, {
                     {0, 2},
                     {2, 5},
                 }},
        {{5, 7}, {
                     {2, 5},
                     {1, 5},
                 }},
        {{1, 2}, {
                     {0, 7},
                     {0, 3},
                 }},
        {{3, 7}, {
                     {1, 5},
                     {2, 3},
                 }},
        {{0, 4}, {
                     {0, 3},
                     {0, 5},
                 }},
        {{6, 7}, {
                     {0, 2},
                     {2, 4},
                 }},
        {{2, 5}, {
                     {1, 5},
                     {1, 4},
                 }},
        {{1, 7}, {
                     {0, 2},
                     {0, 7},
                 }},
        {{2, 4}, {
                     {0, 5},
                     {0, 3},
                 }},
        {{2, 3}, {
                     {2, 5},
                     {0, 2},
                 }},
        {{4, 7}, {
                     {1, 5},
                     {4, 6},
                 }},
        {{0, 7}, {
                     {1, 5},
                     {0, 2},
                 }},
        {{3, 5}, {
                     {2, 5},
                     {1, 5},
                 }},
    };

    mbm_maps[16] = {
        {{4, 5}, {
                     {0, 5},
                     {2, 5},
                 }},
        {{4, 7}, {
                     {0, 5},
                     {5, 7},
                 }},
        {{6, 7}, {
                     {2, 4},
                     {6, 7},
                 }},
        {{1, 6}, {
                     {2, 4},
                     {0, 4},
                 }},
        {{3, 7}, {
                     {1, 6},
                     {3, 5},
                 }},
        {{1, 3}, {
                     {1, 6},
                     {6, 7},
                 }},
        {{0, 7}, {
                     {2, 6},
                     {6, 7},
                 }},
        {{0, 1}, {
                     {6, 7},
                     {0, 7},
                 }},
        {{2, 7}, {
                     {4, 7},
                     {5, 6},
                 }},
        {{1, 4}, {
                     {0, 5},
                     {0, 7},
                 }},
        {{0, 3}, {
                     {1, 6},
                     {3, 6},
                 }},
        {{2, 4}, {
                     {0, 4},
                     {0, 7},
                 }},
        {{0, 2}, {
                     {4, 7},
                     {2, 4},
                 }},
        {{1, 7}, {
                     {6, 7},
                     {0, 7},
                 }},
        {{2, 5}, {
                     {2, 4},
                     {4, 7},
                 }},
        {{1, 5}, {
                     {0, 7},
                     {0, 2},
                 }},
        {{1, 2}, {
                     {4, 7},
                     {2, 4},
                 }},
        {{3, 4}, {
                     {5, 7},
                     {0, 3},
                 }},
        {{5, 6}, {
                     {6, 7},
                     {0, 5},
                 }},
        {{3, 5}, {
                     {5, 7},
                     {2, 6},
                 }},
        {{2, 6}, {
                     {2, 4},
                     {0, 4},
                 }},
        {{2, 3}, {
                     {4, 5},
                     {3, 4},
                 }},
        {{5, 7}, {
                     {0, 7},
                     {0, 5},
                 }},
        {{0, 6}, {
                     {1, 6},
                     {6, 7},
                 }},
        {{3, 6}, {
                     {5, 6},
                     {1, 6},
                 }},
        {{0, 5}, {
                     {0, 7},
                     {0, 4},
                 }},
        {{4, 6}, {
                     {2, 5},
                     {0, 5},
                 }},
        {{0, 4}, {
                     {0, 7},
                     {1, 6},
                 }},
    };

    mbm_maps[17] = {
        {{0, 3}, {
                     {5, 7},
                     {6, 7},
                 }},
        {{0, 4}, {
                     {5, 7},
                     {6, 7},
                 }},
        {{2, 4}, {
                     {2, 3},
                     {6, 7},
                 }},
        {{6, 7}, {
                     {4, 7},
                     {5, 7},
                 }},
        {{1, 7}, {
                     {4, 5},
                     {4, 7},
                 }},
        {{2, 7}, {
                     {4, 5},
                     {3, 5},
                 }},
        {{3, 4}, {
                     {5, 6},
                     {6, 7},
                 }},
        {{4, 7}, {
                     {2, 6},
                     {5, 6},
                 }},
        {{1, 4}, {
                     {4, 5},
                     {6, 7},
                 }},
        {{3, 6}, {
                     {5, 7},
                     {0, 7},
                 }},
        {{0, 1}, {
                     {4, 7},
                     {4, 5},
                 }},
        {{3, 5}, {
                     {3, 7},
                     {3, 6},
                 }},
        {{1, 2}, {
                     {4, 5},
                     {4, 7},
                 }},
        {{1, 5}, {
                     {4, 7},
                     {1, 5},
                 }},
        {{5, 6}, {
                     {6, 7},
                     {3, 6},
                 }},
        {{0, 5}, {
                     {4, 7},
                     {1, 6},
                 }},
        {{5, 7}, {
                     {1, 5},
                     {5, 7},
                 }},
        {{2, 3}, {
                     {5, 7},
                     {3, 5},
                 }},
        {{4, 5}, {
                     {3, 6},
                     {5, 7},
                 }},
        {{1, 6}, {
                     {4, 7},
                     {1, 7},
                 }},
        {{2, 5}, {
                     {4, 5},
                     {2, 3},
                 }},
        {{1, 3}, {
                     {4, 7},
                     {1, 7},
                 }},
        {{0, 6}, {
                     {4, 7},
                     {6, 7},
                 }},
        {{0, 7}, {
                     {4, 7},
                     {6, 7},
                 }},
        {{3, 7}, {
                     {5, 7},
                     {5, 6},
                 }},
        {{4, 6}, {
                     {3, 6},
                     {6, 7},
                 }},
        {{2, 6}, {
                     {4, 7},
                     {6, 7},
                 }},
        {{0, 2}, {
                     {4, 7},
                     {4, 5},
                 }},
    };

    mbm_maps[18] = {
        {{2, 5}, {
                     {2, 5},
                     {5, 6},
                 }},
        {{5, 6}, {
                     {5, 6},
                     {1, 6},
                 }},
        {{2, 3}, {
                     {4, 5},
                     {2, 5},
                 }},
        {{5, 7}, {
                     {5, 6},
                     {1, 6},
                 }},
        {{6, 7}, {
                     {1, 6},
                     {0, 5},
                 }},
        {{0, 7}, {
                     {5, 6},
                     {1, 6},
                 }},
        {{0, 6}, {
                     {1, 6},
                     {5, 6},
                 }},
        {{2, 6}, {
                     {3, 5},
                     {5, 6},
                 }},
        {{0, 5}, {
                     {1, 6},
                     {5, 6},
                 }},
        {{4, 5}, {
                     {2, 6},
                     {2, 3},
                 }},
        {{3, 5}, {
                     {5, 6},
                     {2, 6},
                 }},
        {{3, 6}, {
                     {1, 6},
                     {1, 2},
                 }},
        {{3, 7}, {
                     {1, 6},
                     {5, 6},
                 }},
        {{4, 6}, {
                     {0, 7},
                     {5, 6},
                 }},
        {{3, 4}, {
                     {2, 6},
                     {5, 6},
                 }},
        {{0, 4}, {
                     {5, 6},
                     {2, 6},
                 }},
        {{4, 7}, {
                     {5, 6},
                     {0, 5},
                 }},
        {{2, 4}, {
                     {2, 6},
                     {5, 6},
                 }},
        {{1, 6}, {
                     {0, 6},
                     {0, 7},
                 }},
        {{1, 4}, {
                     {4, 5},
                     {3, 5},
                 }},
        {{1, 7}, {
                     {5, 7},
                     {5, 6},
                 }},
        {{1, 5}, {
                     {2, 5},
                     {5, 6},
                 }},
        {{0, 1}, {
                     {1, 4},
                     {5, 6},
                 }},
        {{0, 2}, {
                     {5, 6},
                     {1, 6},
                 }},
        {{2, 7}, {
                     {5, 6},
                     {5, 7},
                 }},
        {{1, 3}, {
                     {4, 5},
                     {1, 6},
                 }},
        {{1, 2}, {
                     {5, 7},
                     {5, 6},
                 }},
        {{0, 3}, {
                     {1, 2},
                     {5, 6},
                 }},
    };

    mbm_maps[19] = {
        {{2, 6}, {
                     {2, 4},
                     {4, 7},
                 }},
        {{1, 6}, {
                     {0, 5},
                     {0, 3},
                 }},
        {{6, 7}, {
                     {1, 6},
                     {4, 7},
                 }},
        {{5, 6}, {
                     {1, 6},
                     {2, 4},
                 }},
        {{1, 2}, {
                     {0, 4},
                     {0, 3},
                 }},
        {{0, 5}, {
                     {2, 3},
                     {3, 5},
                 }},
        {{1, 5}, {
                     {4, 7},
                     {1, 6},
                 }},
        {{4, 5}, {
                     {3, 5},
                     {2, 7},
                 }},
        {{2, 5}, {
                     {4, 7},
                     {1, 6},
                 }},
        {{2, 4}, {
                     {4, 7},
                     {0, 1},
                 }},
        {{0, 7}, {
                     {1, 6},
                     {0, 1},
                 }},
        {{2, 7}, {
                     {4, 7},
                     {1, 6},
                 }},
        {{4, 7}, {
                     {4, 7},
                     {1, 7},
                 }},
        {{0, 6}, {
                     {1, 6},
                     {2, 3},
                 }},
        {{3, 7}, {
                     {4, 7},
                     {1, 4},
                 }},
        {{3, 6}, {
                     {2, 4},
                     {4, 7},
                 }},
        {{0, 2}, {
                     {4, 7},
                     {1, 6},
                 }},
        {{3, 5}, {
                     {4, 7},
                     {1, 6},
                 }},
        {{1, 4}, {
                     {1, 6},
                     {4, 6},
                 }},
        {{2, 3}, {
                     {4, 7},
                     {2, 4},
                 }},
        {{0, 3}, {
                     {4, 7},
                     {2, 3},
                 }},
        {{0, 4}, {
                     {2, 3},
                     {2, 7},
                 }},
        {{0, 1}, {
                     {1, 6},
                     {2, 3},
                 }},
        {{5, 7}, {
                     {4, 7},
                     {1, 7},
                 }},
        {{3, 4}, {
                     {4, 7},
                     {2, 7},
                 }},
        {{1, 7}, {
                     {4, 7},
                     {6, 7},
                 }},
        {{1, 3}, {
                     {4, 7},
                     {6, 7},
                 }},
        {{4, 6}, {
                     {1, 6},
                     {1, 2},
                 }},
    };

    mbm_maps[20] = {
        {{2, 6}, {
                     {2, 6},
                     {4, 6},
                 }},
        {{3, 4}, {
                     {1, 5},
                     {2, 5},
                 }},
        {{1, 5}, {
                     {0, 5},
                     {1, 5},
                 }},
        {{1, 6}, {
                     {5, 7},
                     {1, 7},
                 }},
        {{6, 7}, {
                     {4, 6},
                     {6, 7},
                 }},
        {{2, 4}, {
                     {2, 6},
                     {4, 6},
                 }},
        {{4, 5}, {
                     {0, 5},
                     {1, 5},
                 }},
        {{0, 1}, {
                     {0, 1},
                     {0, 5},
                 }},
        {{2, 3}, {
                     {0, 2},
                     {1, 2},
                 }},
        {{0, 7}, {
                     {0, 1},
                     {0, 6},
                 }},
        {{3, 7}, {
                     {0, 2},
                     {2, 5},
                 }},
        {{4, 7}, {
                     {2, 5},
                     {1, 5},
                 }},
        {{3, 5}, {
                     {1, 5},
                     {0, 1},
                 }},
        {{2, 7}, {
                     {0, 6},
                     {4, 6},
                 }},
        {{1, 4}, {
                     {5, 7},
                     {1, 5},
                 }},
        {{3, 6}, {
                     {1, 2},
                     {2, 5},
                 }},
        {{5, 7}, {
                     {0, 6},
                     {6, 7},
                 }},
        {{0, 5}, {
                     {1, 5},
                     {0, 1},
                 }},
        {{0, 6}, {
                     {4, 6},
                     {1, 3},
                 }},
        {{0, 4}, {
                     {1, 5},
                     {0, 1},
                 }},
        {{2, 5}, {
                     {0, 6},
                     {0, 2},
                 }},
        {{1, 7}, {
                     {6, 7},
                     {0, 6},
                 }},
        {{4, 6}, {
                     {1, 7},
                     {0, 1},
                 }},
        {{1, 3}, {
                     {0, 5},
                     {0, 1},
                 }},
        {{1, 2}, {
                     {0, 6},
                     {0, 5},
                 }},
        {{0, 3}, {
                     {0, 1},
                     {2, 3},
                 }},
        {{0, 2}, {
                     {4, 6},
                     {2, 6},
                 }},
        {{5, 6}, {
                     {2, 5},
                     {1, 5},
                 }},
    };

    mbm_maps[21] = {
        {{6, 7}, {
                     {0, 3},
                     {1, 2},
                 }},
        {{5, 6}, {
                     {1, 2},
                     {2, 3},
                 }},
        {{0, 6}, {
                     {0, 5},
                     {1, 2},
                 }},
        {{3, 4}, {
                     {0, 6},
                     {6, 7},
                 }},
        {{4, 6}, {
                     {0, 6},
                     {0, 3},
                 }},
        {{3, 5}, {
                     {1, 2},
                     {2, 3},
                 }},
        {{1, 5}, {
                     {1, 2},
                     {4, 6},
                 }},
        {{2, 5}, {
                     {4, 6},
                     {1, 2},
                 }},
        {{0, 5}, {
                     {1, 2},
                     {2, 3},
                 }},
        {{5, 7}, {
                     {1, 2},
                     {4, 6},
                 }},
        {{4, 5}, {
                     {4, 6},
                     {6, 7},
                 }},
        {{2, 6}, {
                     {0, 3},
                     {4, 6},
                 }},
        {{1, 6}, {
                     {0, 3},
                     {0, 5},
                 }},
        {{1, 7}, {
                     {1, 2},
                     {0, 3},
                 }},
        {{4, 7}, {
                     {6, 7},
                     {1, 6},
                 }},
        {{0, 7}, {
                     {1, 2},
                     {3, 5},
                 }},
        {{2, 4}, {
                     {6, 7},
                     {4, 6},
                 }},
        {{1, 4}, {
                     {3, 6},
                     {6, 7},
                 }},
        {{1, 2}, {
                     {6, 7},
                     {4, 6},
                 }},
        {{0, 1}, {
                     {1, 2},
                     {3, 5},
                 }},
        {{1, 3}, {
                     {1, 2},
                     {0, 7},
                 }},
        {{0, 2}, {
                     {4, 6},
                     {6, 7},
                 }},
        {{3, 6}, {
                     {0, 3},
                     {0, 6},
                 }},
        {{2, 3}, {
                     {6, 7},
                     {3, 7},
                 }},
        {{0, 3}, {
                     {1, 2},
                     {3, 5},
                 }},
        {{0, 4}, {
                     {3, 6},
                     {1, 2},
                 }},
        {{3, 7}, {
                     {1, 2},
                     {1, 6},
                 }},
        {{2, 7}, {
                     {4, 6},
                     {6, 7},
                 }},
    };

    mbm_maps[22] = {
        {{0, 7}, {
                     {1, 6},
                     {5, 6},
                 }},
        {{1, 5}, {
                     {2, 3},
                     {3, 6},
                 }},
        {{0, 3}, {
                     {4, 6},
                     {5, 6},
                 }},
        {{1, 3}, {
                     {4, 6},
                     {0, 4},
                 }},
        {{0, 6}, {
                     {1, 6},
                     {2, 3},
                 }},
        {{1, 2}, {
                     {3, 7},
                     {0, 7},
                 }},
        {{2, 4}, {
                     {3, 5},
                     {0, 5},
                 }},
        {{4, 6}, {
                     {2, 3},
                     {2, 4},
                 }},
        {{1, 4}, {
                     {2, 3},
                     {3, 5},
                 }},
        {{2, 3}, {
                     {0, 7},
                     {1, 7},
                 }},
        {{5, 6}, {
                     {2, 3},
                     {2, 6},
                 }},
        {{2, 7}, {
                     {0, 7},
                     {1, 7},
                 }},
        {{5, 7}, {
                     {5, 7},
                     {2, 3},
                 }},
        {{3, 5}, {
                     {1, 5},
                     {1, 7},
                 }},
        {{6, 7}, {
                     {2, 3},
                     {2, 4},
                 }},
        {{1, 6}, {
                     {2, 3},
                     {2, 5},
                 }},
        {{0, 5}, {
                     {5, 6},
                     {5, 7},
                 }},
        {{3, 6}, {
                     {4, 6},
                     {1, 6},
                 }},
        {{2, 5}, {
                     {2, 7},
                     {2, 3},
                 }},
        {{3, 7}, {
                     {1, 6},
                     {1, 7},
                 }},
        {{1, 7}, {
                     {3, 7},
                     {3, 6},
                 }},
        {{0, 1}, {
                     {5, 6},
                     {3, 5},
                 }},
        {{4, 7}, {
                     {2, 3},
                     {2, 5},
                 }},
        {{4, 5}, {
                     {2, 3},
                     {3, 5},
                 }},
        {{0, 4}, {
                     {1, 6},
                     {5, 6},
                 }},
        {{2, 6}, {
                     {0, 7},
                     {2, 3},
                 }},
        {{3, 4}, {
                     {0, 4},
                     {3, 4},
                 }},
        {{0, 2}, {
                     {0, 5},
                     {1, 5},
                 }},
    };

    mbm_maps[23] = {
        {{2, 4}, {
                     {0, 1},
                     {1, 2},
                 }},
        {{2, 3}, {
                     {4, 5},
                     {4, 7},
                 }},
        {{4, 7}, {
                     {3, 6},
                     {0, 6},
                 }},
        {{0, 4}, {
                     {0, 6},
                     {3, 6},
                 }},
        {{1, 4}, {
                     {1, 6},
                     {3, 6},
                 }},
        {{2, 7}, {
                     {4, 5},
                     {3, 4},
                 }},
        {{3, 7}, {
                     {3, 7},
                     {3, 4},
                 }},
        {{3, 4}, {
                     {1, 6},
                     {3, 6},
                 }},
        {{0, 7}, {
                     {3, 6},
                     {2, 6},
                 }},
        {{1, 7}, {
                     {3, 6},
                     {0, 6},
                 }},
        {{0, 6}, {
                     {3, 6},
                     {4, 5},
                 }},
        {{4, 6}, {
                     {3, 6},
                     {1, 6},
                 }},
        {{3, 5}, {
                     {4, 5},
                     {1, 6},
                 }},
        {{4, 5}, {
                     {1, 6},
                     {0, 6},
                 }},
        {{5, 7}, {
                     {3, 6},
                     {1, 6},
                 }},
        {{2, 5}, {
                     {4, 5},
                     {4, 7},
                 }},
        {{0, 3}, {
                     {0, 7},
                     {3, 6},
                 }},
        {{0, 2}, {
                     {4, 7},
                     {4, 5},
                 }},
        {{0, 1}, {
                     {3, 6},
                     {0, 6},
                 }},
        {{3, 6}, {
                     {4, 5},
                     {0, 3},
                 }},
        {{1, 5}, {
                     {1, 6},
                     {3, 6},
                 }},
        {{0, 5}, {
                     {3, 6},
                     {1, 6},
                 }},
        {{5, 6}, {
                     {4, 5},
                     {1, 6},
                 }},
        {{2, 6}, {
                     {4, 5},
                     {2, 7},
                 }},
        {{1, 6}, {
                     {3, 6},
                     {2, 7},
                 }},
        {{1, 2}, {
                     {4, 5},
                     {2, 7},
                 }},
        {{1, 3}, {
                     {4, 5},
                     {3, 6},
                 }},
        {{6, 7}, {
                     {3, 6},
                     {3, 4},
                 }},
    };

    mbm_maps[24] = {
        {{0, 1}, {
                     {4, 5},
                     {3, 4},
                 }},
        {{4, 5}, {
                     {4, 5},
                     {2, 4},
                 }},
        {{0, 6}, {
                     {1, 7},
                     {0, 1},
                 }},
        {{0, 2}, {
                     {2, 3},
                     {4, 5},
                 }},
        {{0, 5}, {
                     {5, 7},
                     {1, 7},
                 }},
        {{4, 7}, {
                     {2, 4},
                     {4, 5},
                 }},
        {{2, 6}, {
                     {1, 7},
                     {1, 3},
                 }},
        {{0, 4}, {
                     {4, 5},
                     {3, 4},
                 }},
        {{2, 4}, {
                     {4, 5},
                     {2, 4},
                 }},
        {{3, 4}, {
                     {2, 6},
                     {1, 6},
                 }},
        {{2, 3}, {
                     {5, 6},
                     {1, 5},
                 }},
        {{3, 6}, {
                     {0, 1},
                     {0, 3},
                 }},
        {{3, 7}, {
                     {2, 6},
                     {5, 6},
                 }},
        {{2, 5}, {
                     {1, 5},
                     {5, 7},
                 }},
        {{1, 2}, {
                     {4, 5},
                     {3, 4},
                 }},
        {{6, 7}, {
                     {0, 1},
                     {3, 6},
                 }},
        {{1, 4}, {
                     {4, 5},
                     {4, 7},
                 }},
        {{0, 7}, {
                     {3, 6},
                     {0, 6},
                 }},
        {{3, 5}, {
                     {0, 1},
                     {1, 5},
                 }},
        {{5, 6}, {
                     {0, 1},
                     {0, 3},
                 }},
        {{1, 6}, {
                     {1, 7},
                     {0, 1},
                 }},
        {{1, 5}, {
                     {5, 7},
                     {4, 7},
                 }},
        {{4, 6}, {
                     {0, 7},
                     {0, 4},
                 }},
        {{0, 3}, {
                     {0, 6},
                     {1, 6},
                 }},
        {{2, 7}, {
                     {0, 3},
                     {3, 4},
                 }},
        {{1, 7}, {
                     {4, 5},
                     {3, 4},
                 }},
        {{5, 7}, {
                     {1, 5},
                     {0, 1},
                 }},
        {{1, 3}, {
                     {1, 2},
                     {1, 7},
                 }},
    };

    mbm_maps[25] = {
        {{5, 6}, {
                     {1, 7},
                     {1, 3},
                 }},
        {{5, 7}, {
                     {0, 4},
                     {0, 3},
                 }},
        {{1, 7}, {
                     {3, 5},
                     {2, 5},
                 }},
        {{1, 5}, {
                     {0, 4},
                     {0, 3},
                 }},
        {{0, 1}, {
                     {2, 5},
                     {3, 5},
                 }},
        {{0, 5}, {
                     {3, 5},
                     {2, 5},
                 }},
        {{2, 5}, {
                     {0, 4},
                     {0, 7},
                 }},
        {{0, 3}, {
                     {2, 5},
                     {3, 5},
                 }},
        {{4, 5}, {
                     {0, 4},
                     {4, 6},
                 }},
        {{3, 4}, {
                     {0, 4},
                     {2, 5},
                 }},
        {{1, 3}, {
                     {2, 5},
                     {5, 6},
                 }},
        {{3, 7}, {
                     {0, 4},
                     {2, 5},
                 }},
        {{2, 6}, {
                     {1, 7},
                     {3, 5},
                 }},
        {{2, 4}, {
                     {0, 4},
                     {4, 7},
                 }},
        {{0, 4}, {
                     {0, 4},
                     {0, 5},
                 }},
        {{3, 6}, {
                     {1, 2},
                     {1, 7},
                 }},
        {{4, 7}, {
                     {0, 4},
                     {0, 5},
                 }},
        {{1, 4}, {
                     {3, 6},
                     {5, 6},
                 }},
        {{1, 6}, {
                     {1, 7},
                     {1, 3},
                 }},
        {{2, 3}, {
                     {0, 4},
                     {2, 6},
                 }},
        {{0, 7}, {
                     {3, 5},
                     {2, 5},
                 }},
        {{2, 7}, {
                     {0, 4},
                     {3, 5},
                 }},
        {{1, 2}, {
                     {0, 4},
                     {1, 3},
                 }},
        {{6, 7}, {
                     {1, 3},
                     {3, 5},
                 }},
        {{0, 6}, {
                     {2, 5},
                     {1, 7},
                 }},
        {{3, 5}, {
                     {0, 4},
                     {6, 7},
                 }},
        {{4, 6}, {
                     {0, 4},
                     {1, 7},
                 }},
        {{0, 2}, {
                     {0, 4},
                     {2, 5},
                 }},
    };

    mbm_maps[26] = {
        {{1, 3}, {
                     {1, 4},
                     {1, 7},
                 }},
        {{0, 4}, {
                     {4, 6},
                     {2, 4},
                 }},
        {{3, 5}, {
                     {3, 4},
                     {4, 5},
                 }},
        {{0, 3}, {
                     {3, 4},
                     {1, 2},
                 }},
        {{1, 2}, {
                     {1, 7},
                     {5, 7},
                 }},
        {{2, 3}, {
                     {1, 2},
                     {5, 7},
                 }},
        {{2, 5}, {
                     {5, 7},
                     {4, 5},
                 }},
        {{2, 4}, {
                     {5, 7},
                     {4, 5},
                 }},
        {{4, 7}, {
                     {0, 6},
                     {3, 6},
                 }},
        {{1, 7}, {
                     {1, 7},
                     {0, 1},
                 }},
        {{4, 6}, {
                     {5, 7},
                     {0, 6},
                 }},
        {{5, 6}, {
                     {4, 5},
                     {1, 4},
                 }},
        {{0, 2}, {
                     {2, 4},
                     {3, 4},
                 }},
        {{2, 6}, {
                     {5, 7},
                     {4, 5},
                 }},
        {{3, 7}, {
                     {0, 3},
                     {3, 7},
                 }},
        {{4, 5}, {
                     {4, 5},
                     {5, 6},
                 }},
        {{0, 5}, {
                     {4, 5},
                     {2, 4},
                 }},
        {{3, 6}, {
                     {1, 4},
                     {1, 2},
                 }},
        {{5, 7}, {
                     {4, 5},
                     {5, 7},
                 }},
        {{0, 7}, {
                     {3, 4},
                     {2, 4},
                 }},
        {{1, 5}, {
                     {3, 4},
                     {1, 4},
                 }},
        {{0, 6}, {
                     {2, 4},
                     {5, 6},
                 }},
        {{6, 7}, {
                     {0, 6},
                     {4, 7},
                 }},
        {{0, 1}, {
                     {1, 4},
                     {2, 4},
                 }},
        {{1, 6}, {
                     {1, 5},
                     {1, 2},
                 }},
        {{1, 4}, {
                     {5, 7},
                     {1, 6},
                 }},
        {{2, 7}, {
                     {1, 7},
                     {5, 7},
                 }},
        {{3, 4}, {
                     {3, 6},
                     {5, 7},
                 }},
    };

    mbm_maps[27] = {
        {{5, 7}, {
                     {1, 2},
                     {0, 1},
                 }},
        {{3, 4}, {
                     {3, 4},
                     {0, 3},
                 }},
        {{4, 7}, {
                     {1, 2},
                     {2, 3},
                 }},
        {{1, 3}, {
                     {1, 4},
                     {3, 4},
                 }},
        {{2, 4}, {
                     {4, 7},
                     {2, 7},
                 }},
        {{4, 5}, {
                     {1, 2},
                     {0, 1},
                 }},
        {{4, 6}, {
                     {4, 7},
                     {3, 7},
                 }},
        {{1, 7}, {
                     {6, 7},
                     {1, 4},
                 }},
        {{0, 6}, {
                     {5, 6},
                     {4, 7},
                 }},
        {{5, 6}, {
                     {0, 5},
                     {5, 6},
                 }},
        {{3, 6}, {
                     {4, 7},
                     {3, 7},
                 }},
        {{1, 6}, {
                     {3, 7},
                     {4, 7},
                 }},
        {{2, 5}, {
                     {0, 1},
                     {1, 2},
                 }},
        {{1, 2}, {
                     {4, 7},
                     {3, 4},
                 }},
        {{2, 3}, {
                     {4, 7},
                     {3, 7},
                 }},
        {{2, 7}, {
                     {1, 2},
                     {4, 7},
                 }},
        {{2, 6}, {
                     {4, 7},
                     {3, 7},
                 }},
        {{0, 5}, {
                     {1, 2},
                     {0, 5},
                 }},
        {{3, 5}, {
                     {0, 2},
                     {0, 1},
                 }},
        {{1, 5}, {
                     {1, 6},
                     {0, 1},
                 }},
        {{1, 4}, {
                     {3, 4},
                     {1, 2},
                 }},
        {{3, 7}, {
                     {0, 5},
                     {2, 3},
                 }},
        {{0, 4}, {
                     {4, 7},
                     {0, 5},
                 }},
        {{0, 7}, {
                     {5, 6},
                     {4, 6},
                 }},
        {{0, 2}, {
                     {4, 7},
                     {0, 7},
                 }},
        {{0, 1}, {
                     {6, 7},
                     {5, 6},
                 }},
        {{6, 7}, {
                     {5, 6},
                     {0, 5},
                 }},
        {{0, 3}, {
                     {0, 6},
                     {0, 1},
                 }},
    };

    mbm_maps[28] = {
        {{5, 6}, {
                     {2, 7},
                     {5, 6},
                 }},
        {{3, 4}, {
                     {0, 1},
                     {1, 5},
                 }},
        {{0, 1}, {
                     {2, 5},
                     {4, 5},
                 }},
        {{3, 7}, {
                     {0, 1},
                     {4, 6},
                 }},
        {{0, 3}, {
                     {5, 6},
                     {2, 4},
                 }},
        {{2, 5}, {
                     {3, 4},
                     {4, 7},
                 }},
        {{4, 7}, {
                     {0, 1},
                     {6, 7},
                 }},
        {{1, 2}, {
                     {3, 4},
                     {4, 6},
                 }},
        {{1, 4}, {
                     {5, 7},
                     {4, 7},
                 }},
        {{0, 5}, {
                     {0, 2},
                     {2, 7},
                 }},
        {{6, 7}, {
                     {3, 4},
                     {0, 1},
                 }},
        {{0, 2}, {
                     {2, 5},
                     {2, 4},
                 }},
        {{5, 7}, {
                     {0, 1},
                     {3, 4},
                 }},
        {{1, 6}, {
                     {3, 5},
                     {3, 4},
                 }},
        {{2, 7}, {
                     {0, 1},
                     {0, 7},
                 }},
        {{0, 7}, {
                     {0, 1},
                     {0, 2},
                 }},
        {{4, 5}, {
                     {0, 1},
                     {2, 7},
                 }},
        {{3, 5}, {
                     {2, 7},
                     {5, 6},
                 }},
        {{2, 3}, {
                     {3, 4},
                     {5, 6},
                 }},
        {{3, 6}, {
                     {3, 4},
                     {1, 5},
                 }},
        {{2, 6}, {
                     {3, 5},
                     {2, 7},
                 }},
        {{4, 6}, {
                     {2, 7},
                     {0, 1},
                 }},
        {{1, 3}, {
                     {3, 4},
                     {0, 1},
                 }},
        {{1, 7}, {
                     {6, 7},
                     {4, 6},
                 }},
        {{0, 4}, {
                     {0, 1},
                     {5, 7},
                 }},
        {{0, 6}, {
                     {5, 6},
                     {1, 5},
                 }},
        {{1, 5}, {
                     {4, 7},
                     {0, 1},
                 }},
        {{2, 4}, {
                     {2, 7},
                     {5, 7},
                 }},
    };

    mbm_maps[29] = {
        {{2, 7}, {
                     {0, 1},
                     {0, 6},
                 }},
        {{0, 1}, {
                     {5, 6},
                     {4, 6},
                 }},
        {{1, 5}, {
                     {2, 5},
                     {3, 5},
                 }},
        {{5, 7}, {
                     {3, 7},
                     {3, 5},
                 }},
        {{0, 6}, {
                     {4, 6},
                     {4, 5},
                 }},
        {{5, 6}, {
                     {3, 5},
                     {0, 1},
                 }},
        {{4, 7}, {
                     {0, 7},
                     {0, 4},
                 }},
        {{4, 6}, {
                     {0, 7},
                     {0, 1},
                 }},
        {{4, 5}, {
                     {0, 7},
                     {2, 4},
                 }},
        {{0, 7}, {
                     {4, 6},
                     {4, 5},
                 }},
        {{1, 6}, {
                     {3, 5},
                     {5, 6},
                 }},
        {{0, 2}, {
                     {4, 6},
                     {3, 6},
                 }},
        {{3, 4}, {
                     {2, 7},
                     {0, 7},
                 }},
        {{3, 5}, {
                     {2, 4},
                     {4, 5},
                 }},
        {{2, 6}, {
                     {5, 7},
                     {0, 1},
                 }},
        {{2, 4}, {
                     {0, 7},
                     {0, 6},
                 }},
        {{2, 5}, {
                     {2, 4},
                     {3, 4},
                 }},
        {{2, 3}, {
                     {1, 7},
                     {2, 7},
                 }},
        {{0, 3}, {
                     {4, 6},
                     {1, 6},
                 }},
        {{3, 6}, {
                     {2, 7},
                     {1, 7},
                 }},
        {{0, 5}, {
                     {4, 6},
                     {0, 4},
                 }},
        {{6, 7}, {
                     {0, 1},
                     {2, 4},
                 }},
        {{1, 4}, {
                     {1, 5},
                     {1, 4},
                 }},
        {{1, 7}, {
                     {5, 6},
                     {3, 5},
                 }},
        {{3, 7}, {
                     {0, 4},
                     {1, 5},
                 }},
        {{0, 4}, {
                     {4, 6},
                     {0, 6},
                 }},
        {{1, 2}, {
                     {5, 7},
                     {2, 4},
                 }},
        {{1, 3}, {
                     {5, 6},
                     {5, 7},
                 }},
    };

    mbm_maps[30] = {
        {{0, 4}, {
                     {2, 3},
                     {0, 3},
                 }},
        {{3, 6}, {
                     {1, 5},
                     {0, 1},
                 }},
        {{2, 5}, {
                     {4, 7},
                     {1, 7},
                 }},
        {{3, 7}, {
                     {0, 7},
                     {3, 7},
                 }},
        {{3, 5}, {
                     {3, 7},
                     {5, 7},
                 }},
        {{0, 6}, {
                     {0, 6},
                     {0, 3},
                 }},
        {{5, 6}, {
                     {1, 7},
                     {1, 6},
                 }},
        {{5, 7}, {
                     {6, 7},
                     {3, 7},
                 }},
        {{0, 7}, {
                     {2, 3},
                     {0, 3},
                 }},
        {{4, 6}, {
                     {1, 7},
                     {1, 6},
                 }},
        {{2, 6}, {
                     {1, 5},
                     {1, 6},
                 }},
        {{2, 7}, {
                     {3, 6},
                     {2, 3},
                 }},
        {{2, 4}, {
                     {0, 7},
                     {0, 2},
                 }},
        {{0, 1}, {
                     {2, 3},
                     {0, 2},
                 }},
        {{3, 4}, {
                     {0, 7},
                     {0, 6},
                 }},
        {{1, 4}, {
                     {0, 7},
                     {0, 2},
                 }},
        {{0, 5}, {
                     {4, 5},
                     {2, 7},
                 }},
        {{1, 7}, {
                     {4, 6},
                     {3, 6},
                 }},
        {{1, 6}, {
                     {1, 6},
                     {1, 7},
                 }},
        {{0, 3}, {
                     {0, 1},
                     {2, 3},
                 }},
        {{2, 3}, {
                     {0, 7},
                     {0, 4},
                 }},
        {{4, 7}, {
                     {0, 7},
                     {0, 2},
                 }},
        {{0, 2}, {
                     {5, 6},
                     {4, 5},
                 }},
        {{6, 7}, {
                     {0, 3},
                     {1, 7},
                 }},
        {{4, 5}, {
                     {1, 7},
                     {0, 6},
                 }},
        {{1, 3}, {
                     {4, 5},
                     {0, 5},
                 }},
        {{1, 2}, {
                     {0, 2},
                     {0, 5},
                 }},
        {{1, 5}, {
                     {0, 7},
                     {5, 6},
                 }},
    };

    mbm_maps[31] = {
        {{3, 4}, {
                     {1, 3},
                     {1, 4},
                 }},
        {{1, 7}, {
                     {5, 7},
                     {2, 7},
                 }},
        {{4, 7}, {
                     {5, 6},
                     {5, 7},
                 }},
        {{0, 7}, {
                     {0, 3},
                     {0, 2},
                 }},
        {{2, 4}, {
                     {1, 4},
                     {1, 5},
                 }},
        {{3, 7}, {
                     {5, 6},
                     {5, 7},
                 }},
        {{3, 5}, {
                     {0, 4},
                     {0, 7},
                 }},
        {{1, 5}, {
                     {2, 7},
                     {6, 7},
                 }},
        {{6, 7}, {
                     {5, 6},
                     {5, 7},
                 }},
        {{2, 7}, {
                     {5, 6},
                     {1, 5},
                 }},
        {{4, 5}, {
                     {4, 6},
                     {4, 7},
                 }},
        {{2, 5}, {
                     {5, 7},
                     {4, 5},
                 }},
        {{0, 1}, {
                     {0, 2},
                     {2, 7},
                 }},
        {{1, 6}, {
                     {2, 7},
                     {3, 7},
                 }},
        {{3, 6}, {
                     {1, 6},
                     {1, 3},
                 }},
        {{1, 4}, {
                     {2, 7},
                     {6, 7},
                 }},
        {{0, 2}, {
                     {0, 4},
                     {1, 4},
                 }},
        {{0, 3}, {
                     {1, 3},
                     {1, 4},
                 }},
        {{0, 6}, {
                     {0, 2},
                     {0, 4},
                 }},
        {{0, 4}, {
                     {0, 4},
                     {0, 3},
                 }},
        {{2, 3}, {
                     {1, 4},
                     {1, 3},
                 }},
        {{5, 6}, {
                     {4, 6},
                     {5, 6},
                 }},
        {{1, 2}, {
                     {1, 4},
                     {5, 7},
                 }},
        {{1, 3}, {
                     {2, 7},
                     {5, 7},
                 }},
        {{2, 6}, {
                     {6, 7},
                     {1, 4},
                 }},
        {{0, 5}, {
                     {0, 2},
                     {0, 4},
                 }},
        {{4, 6}, {
                     {4, 6},
                     {6, 7},
                 }},
        {{5, 7}, {
                     {5, 6},
                     {5, 7},
                 }},
    };

    mbm_maps[32] = {
        {{0, 7}, {
                     {0, 2},
                     {2, 4},
                 }},
        {{6, 7}, {
                     {1, 4},
                     {1, 7},
                 }},
        {{5, 6}, {
                     {0, 2},
                     {2, 4},
                 }},
        {{0, 6}, {
                     {0, 2},
                     {0, 4},
                 }},
        {{4, 6}, {
                     {5, 7},
                     {0, 5},
                 }},
        {{1, 3}, {
                     {3, 6},
                     {5, 6},
                 }},
        {{3, 6}, {
                     {1, 4},
                     {1, 7},
                 }},
        {{2, 3}, {
                     {2, 3},
                     {3, 6},
                 }},
        {{0, 1}, {
                     {3, 6},
                     {2, 6},
                 }},
        {{0, 3}, {
                     {3, 6},
                     {0, 3},
                 }},
        {{3, 7}, {
                     {1, 7},
                     {1, 4},
                 }},
        {{0, 2}, {
                     {3, 6},
                     {2, 3},
                 }},
        {{2, 7}, {
                     {1, 7},
                     {0, 1},
                 }},
        {{1, 6}, {
                     {5, 6},
                     {2, 6},
                 }},
        {{1, 4}, {
                     {3, 6},
                     {5, 6},
                 }},
        {{5, 7}, {
                     {0, 1},
                     {1, 7},
                 }},
        {{0, 4}, {
                     {3, 6},
                     {3, 5},
                 }},
        {{3, 4}, {
                     {3, 5},
                     {3, 6},
                 }},
        {{4, 7}, {
                     {1, 7},
                     {1, 4},
                 }},
        {{2, 6}, {
                     {4, 5},
                     {1, 4},
                 }},
        {{3, 5}, {
                     {0, 7},
                     {0, 2},
                 }},
        {{1, 2}, {
                     {3, 6},
                     {2, 6},
                 }},
        {{1, 5}, {
                     {2, 6},
                     {3, 6},
                 }},
        {{0, 5}, {
                     {0, 2},
                     {2, 4},
                 }},
        {{2, 5}, {
                     {0, 7},
                     {0, 1},
                 }},
        {{2, 4}, {
                     {3, 6},
                     {3, 5},
                 }},
        {{4, 5}, {
                     {2, 4},
                     {0, 2},
                 }},
        {{1, 7}, {
                     {4, 6},
                     {3, 6},
                 }},
    };

    mbm_maps[33] = {
        {{6, 7}, {
                     {0, 5},
                     {0, 3},
                 }},
        {{1, 4}, {
                     {2, 6},
                     {1, 2},
                 }},
        {{2, 4}, {
                     {2, 5},
                     {1, 2},
                 }},
        {{0, 2}, {
                     {2, 5},
                     {2, 7},
                 }},
        {{2, 6}, {
                     {0, 7},
                     {0, 5},
                 }},
        {{1, 7}, {
                     {2, 3},
                     {2, 6},
                 }},
        {{4, 7}, {
                     {1, 2},
                     {1, 7},
                 }},
        {{5, 7}, {
                     {6, 7},
                     {3, 7},
                 }},
        {{3, 6}, {
                     {0, 5},
                     {1, 5},
                 }},
        {{0, 1}, {
                     {2, 6},
                     {2, 7},
                 }},
        {{1, 5}, {
                     {2, 6},
                     {6, 7},
                 }},
        {{1, 6}, {
                     {4, 6},
                     {0, 4},
                 }},
        {{2, 3}, {
                     {0, 1},
                     {0, 4},
                 }},
        {{5, 6}, {
                     {3, 7},
                     {5, 7},
                 }},
        {{0, 4}, {
                     {2, 5},
                     {1, 2},
                 }},
        {{4, 5}, {
                     {1, 4},
                     {0, 4},
                 }},
        {{1, 3}, {
                     {0, 4},
                     {4, 6},
                 }},
        {{0, 3}, {
                     {0, 1},
                     {0, 2},
                 }},
        {{3, 4}, {
                     {1, 2},
                     {1, 5},
                 }},
        {{0, 7}, {
                     {0, 3},
                     {1, 2},
                 }},
        {{3, 5}, {
                     {1, 5},
                     {0, 5},
                 }},
        {{1, 2}, {
                     {2, 7},
                     {2, 6},
                 }},
        {{4, 6}, {
                     {0, 5},
                     {3, 7},
                 }},
        {{3, 7}, {
                     {1, 5},
                     {0, 4},
                 }},
        {{0, 6}, {
                     {0, 2},
                     {0, 5},
                 }},
        {{0, 5}, {
                     {0, 3},
                     {6, 7},
                 }},
        {{2, 5}, {
                     {5, 7},
                     {0, 7},
                 }},
        {{2, 7}, {
                     {0, 3},
                     {3, 7},
                 }},
    };

    mbm_maps[34] = {
        {{1, 4}, {
                     {3, 4},
                     {2, 3},
                 }},
        {{2, 6}, {
                     {2, 5},
                     {5, 6},
                 }},
        {{1, 2}, {
                     {2, 3},
                     {2, 5},
                 }},
        {{1, 3}, {
                     {1, 6},
                     {0, 6},
                 }},
        {{2, 5}, {
                     {2, 3},
                     {0, 3},
                 }},
        {{0, 6}, {
                     {3, 4},
                     {4, 7},
                 }},
        {{2, 3}, {
                     {5, 6},
                     {2, 6},
                 }},
        {{3, 7}, {
                     {1, 7},
                     {0, 7},
                 }},
        {{2, 7}, {
                     {5, 6},
                     {2, 5},
                 }},
        {{5, 6}, {
                     {3, 4},
                     {4, 7},
                 }},
        {{4, 7}, {
                     {3, 4},
                     {5, 6},
                 }},
        {{4, 5}, {
                     {3, 4},
                     {2, 3},
                 }},
        {{0, 4}, {
                     {3, 4},
                     {0, 4},
                 }},
        {{6, 7}, {
                     {1, 7},
                     {0, 1},
                 }},
        {{3, 5}, {
                     {3, 4},
                     {4, 7},
                 }},
        {{0, 3}, {
                     {3, 4},
                     {4, 7},
                 }},
        {{0, 5}, {
                     {3, 4},
                     {0, 4},
                 }},
        {{0, 1}, {
                     {3, 4},
                     {0, 4},
                 }},
        {{3, 6}, {
                     {5, 6},
                     {1, 6},
                 }},
        {{4, 6}, {
                     {5, 6},
                     {0, 6},
                 }},
        {{5, 7}, {
                     {3, 4},
                     {0, 3},
                 }},
        {{1, 5}, {
                     {3, 4},
                     {0, 3},
                 }},
        {{1, 6}, {
                     {0, 6},
                     {1, 6},
                 }},
        {{0, 2}, {
                     {3, 4},
                     {0, 4},
                 }},
        {{2, 4}, {
                     {5, 6},
                     {2, 5},
                 }},
        {{1, 7}, {
                     {0, 3},
                     {3, 4},
                 }},
        {{3, 4}, {
                     {3, 4},
                     {5, 6},
                 }},
        {{0, 7}, {
                     {3, 4},
                     {4, 7},
                 }},
    };

    mbm_maps[35] = {
        {{4, 7}, {
                     {0, 5},
                     {4, 5},
                 }},
        {{2, 5}, {
                     {1, 6},
                     {1, 4},
                 }},
        {{2, 3}, {
                     {1, 4},
                     {1, 5},
                 }},
        {{1, 3}, {
                     {1, 5},
                     {1, 4},
                 }},
        {{0, 6}, {
                     {1, 6},
                     {0, 6},
                 }},
        {{0, 3}, {
                     {1, 4},
                     {1, 5},
                 }},
        {{0, 4}, {
                     {1, 5},
                     {5, 7},
                 }},
        {{5, 6}, {
                     {1, 6},
                     {0, 6},
                 }},
        {{1, 2}, {
                     {2, 7},
                     {1, 6},
                 }},
        {{4, 5}, {
                     {1, 5},
                     {1, 4},
                 }},
        {{1, 5}, {
                     {1, 6},
                     {3, 7},
                 }},
        {{0, 7}, {
                     {2, 5},
                     {0, 5},
                 }},
        {{3, 4}, {
                     {1, 5},
                     {3, 5},
                 }},
        {{0, 2}, {
                     {1, 6},
                     {1, 5},
                 }},
        {{1, 7}, {
                     {2, 5},
                     {0, 2},
                 }},
        {{0, 5}, {
                     {1, 6},
                     {1, 4},
                 }},
        {{3, 7}, {
                     {1, 5},
                     {5, 7},
                 }},
        {{2, 7}, {
                     {1, 6},
                     {5, 7},
                 }},
        {{4, 6}, {
                     {1, 7},
                     {4, 7},
                 }},
        {{2, 6}, {
                     {1, 6},
                     {0, 6},
                 }},
        {{2, 4}, {
                     {3, 7},
                     {3, 5},
                 }},
        {{5, 7}, {
                     {1, 6},
                     {1, 4},
                 }},
        {{3, 5}, {
                     {1, 4},
                     {1, 5},
                 }},
        {{1, 4}, {
                     {0, 5},
                     {4, 5},
                 }},
        {{1, 6}, {
                     {0, 6},
                     {1, 6},
                 }},
        {{6, 7}, {
                     {2, 7},
                     {1, 6},
                 }},
        {{0, 1}, {
                     {2, 7},
                     {0, 2},
                 }},
        {{3, 6}, {
                     {5, 7},
                     {1, 6},
                 }},
    };

    mbm_maps[36] = {
        {{4, 7}, {
                     {3, 6},
                     {5, 6},
                 }},
        {{1, 6}, {
                     {2, 7},
                     {2, 6},
                 }},
        {{1, 4}, {
                     {1, 4},
                     {4, 7},
                 }},
        {{1, 5}, {
                     {0, 7},
                     {0, 3},
                 }},
        {{6, 7}, {
                     {2, 7},
                     {2, 6},
                 }},
        {{4, 5}, {
                     {0, 3},
                     {3, 6},
                 }},
        {{4, 6}, {
                     {2, 7},
                     {2, 6},
                 }},
        {{0, 6}, {
                     {2, 7},
                     {2, 5},
                 }},
        {{2, 5}, {
                     {0, 3},
                     {0, 1},
                 }},
        {{0, 4}, {
                     {0, 3},
                     {3, 6},
                 }},
        {{3, 4}, {
                     {3, 6},
                     {1, 5},
                 }},
        {{5, 7}, {
                     {0, 3},
                     {3, 6},
                 }},
        {{0, 5}, {
                     {0, 3},
                     {0, 1},
                 }},
        {{2, 6}, {
                     {2, 7},
                     {2, 5},
                 }},
        {{1, 2}, {
                     {1, 4},
                     {4, 7},
                 }},
        {{0, 2}, {
                     {1, 2},
                     {1, 5},
                 }},
        {{2, 7}, {
                     {1, 5},
                     {2, 5},
                 }},
        {{3, 5}, {
                     {0, 3},
                     {3, 6},
                 }},
        {{1, 3}, {
                     {3, 6},
                     {0, 3},
                 }},
        {{0, 7}, {
                     {5, 6},
                     {1, 5},
                 }},
        {{0, 1}, {
                     {0, 4},
                     {2, 7},
                 }},
        {{1, 7}, {
                     {3, 6},
                     {5, 6},
                 }},
        {{3, 7}, {
                     {3, 6},
                     {1, 5},
                 }},
        {{2, 4}, {
                     {1, 5},
                     {3, 6},
                 }},
        {{2, 3}, {
                     {1, 5},
                     {0, 3},
                 }},
        {{0, 3}, {
                     {0, 3},
                     {3, 6},
                 }},
        {{3, 6}, {
                     {2, 7},
                     {3, 5},
                 }},
        {{5, 6}, {
                     {0, 7},
                     {2, 7},
                 }},
    };

    mbm_maps[37] = {
        {{1, 7}, {
                     {1, 2},
                     {2, 4},
                 }},
        {{2, 7}, {
                     {3, 7},
                     {4, 7},
                 }},
        {{1, 4}, {
                     {0, 4},
                     {2, 4},
                 }},
        {{0, 7}, {
                     {2, 4},
                     {2, 5},
                 }},
        {{4, 7}, {
                     {2, 4},
                     {0, 4},
                 }},
        {{0, 6}, {
                     {2, 5},
                     {1, 5},
                 }},
        {{2, 4}, {
                     {0, 4},
                     {4, 7},
                 }},
        {{0, 3}, {
                     {2, 5},
                     {0, 5},
                 }},
        {{5, 7}, {
                     {3, 5},
                     {1, 3},
                 }},
        {{2, 6}, {
                     {1, 7},
                     {1, 4},
                 }},
        {{0, 4}, {
                     {2, 5},
                     {2, 3},
                 }},
        {{4, 6}, {
                     {0, 4},
                     {1, 5},
                 }},
        {{4, 5}, {
                     {1, 3},
                     {1, 2},
                 }},
        {{3, 6}, {
                     {2, 5},
                     {1, 5},
                 }},
        {{1, 3}, {
                     {2, 5},
                     {5, 6},
                 }},
        {{0, 5}, {
                     {2, 5},
                     {2, 3},
                 }},
        {{2, 5}, {
                     {3, 7},
                     {1, 7},
                 }},
        {{1, 2}, {
                     {0, 7},
                     {1, 7},
                 }},
        {{1, 5}, {
                     {6, 7},
                     {1, 3},
                 }},
        {{0, 1}, {
                     {2, 5},
                     {2, 3},
                 }},
        {{5, 6}, {
                     {1, 3},
                     {1, 5},
                 }},
        {{1, 6}, {
                     {1, 5},
                     {1, 2},
                 }},
        {{3, 7}, {
                     {3, 5},
                     {1, 5},
                 }},
        {{3, 5}, {
                     {2, 5},
                     {3, 5},
                 }},
        {{6, 7}, {
                     {1, 4},
                     {1, 5},
                 }},
        {{3, 4}, {
                     {2, 5},
                     {0, 5},
                 }},
        {{0, 2}, {
                     {3, 7},
                     {1, 3},
                 }},
        {{2, 3}, {
                     {1, 5},
                     {3, 5},
                 }},
    };

    mbm_maps[38] = {
        {{1, 2}, {
                     {0, 7},
                     {3, 6},
                 }},
        {{4, 7}, {
                     {4, 5},
                     {3, 4},
                 }},
        {{0, 4}, {
                     {4, 7},
                     {3, 4},
                 }},
        {{2, 4}, {
                     {4, 7},
                     {0, 4},
                 }},
        {{3, 7}, {
                     {4, 5},
                     {1, 3},
                 }},
        {{2, 5}, {
                     {0, 7},
                     {4, 7},
                 }},
        {{5, 6}, {
                     {1, 6},
                     {0, 7},
                 }},
        {{2, 3}, {
                     {0, 4},
                     {0, 7},
                 }},
        {{0, 6}, {
                     {5, 6},
                     {1, 4},
                 }},
        {{1, 3}, {
                     {1, 3},
                     {3, 6},
                 }},
        {{6, 7}, {
                     {1, 3},
                     {1, 2},
                 }},
        {{1, 5}, {
                     {0, 7},
                     {1, 6},
                 }},
        {{1, 7}, {
                     {4, 5},
                     {0, 4},
                 }},
        {{0, 5}, {
                     {5, 6},
                     {0, 7},
                 }},
        {{0, 1}, {
                     {1, 3},
                     {3, 6},
                 }},
        {{1, 4}, {
                     {0, 4},
                     {4, 7},
                 }},
        {{0, 7}, {
                     {5, 6},
                     {3, 5},
                 }},
        {{1, 6}, {
                     {3, 6},
                     {1, 3},
                 }},
        {{4, 5}, {
                     {1, 6},
                     {0, 7},
                 }},
        {{3, 6}, {
                     {1, 6},
                     {1, 3},
                 }},
        {{4, 6}, {
                     {4, 7},
                     {0, 4},
                 }},
        {{0, 3}, {
                     {5, 6},
                     {1, 6},
                 }},
        {{0, 2}, {
                     {5, 6},
                     {0, 7},
                 }},
        {{2, 7}, {
                     {4, 7},
                     {3, 6},
                 }},
        {{2, 6}, {
                     {0, 7},
                     {1, 6},
                 }},
        {{3, 5}, {
                     {1, 6},
                     {0, 7},
                 }},
        {{3, 4}, {
                     {0, 4},
                     {4, 7},
                 }},
        {{5, 7}, {
                     {1, 7},
                     {1, 2},
                 }},
    };
    mbm_maps[39] = {
        {{3, 6}, {
                     {3, 5},
                     {5, 6},
                 }},
        {{3, 4}, {
                     {3, 5},
                     {2, 6},
                 }},
        {{1, 4}, {
                     {3, 5},
                     {0, 2},
                 }},
        {{1, 2}, {
                     {2, 6},
                     {3, 5},
                 }},
        {{4, 7}, {
                     {0, 1},
                     {1, 7},
                 }},
        {{0, 7}, {
                     {4, 7},
                     {0, 1},
                 }},
        {{2, 4}, {
                     {3, 5},
                     {2, 6},
                 }},
        {{5, 6}, {
                     {1, 7},
                     {1, 4},
                 }},
        {{4, 5}, {
                     {3, 5},
                     {2, 6},
                 }},
        {{0, 6}, {
                     {3, 5},
                     {0, 1},
                 }},
        {{1, 3}, {
                     {3, 5},
                     {2, 6},
                 }},
        {{1, 7}, {
                     {3, 5},
                     {4, 7},
                 }},
        {{0, 4}, {
                     {3, 5},
                     {2, 6},
                 }},
        {{4, 6}, {
                     {3, 5},
                     {0, 2},
                 }},
        {{1, 6}, {
                     {3, 5},
                     {1, 7},
                 }},
        {{3, 5}, {
                     {3, 5},
                     {2, 6},
                 }},
        {{0, 1}, {
                     {3, 5},
                     {0, 1},
                 }},
        {{0, 5}, {
                     {3, 5},
                     {0, 4},
                 }},
        {{6, 7}, {
                     {1, 2},
                     {4, 7},
                 }},
        {{2, 3}, {
                     {3, 5},
                     {4, 7},
                 }},
        {{1, 5}, {
                     {3, 5},
                     {2, 6},
                 }},
        {{0, 3}, {
                     {3, 5},
                     {2, 6},
                 }},
        {{0, 2}, {
                     {3, 5},
                     {0, 1},
                 }},
        {{2, 6}, {
                     {1, 7},
                     {0, 7},
                 }},
        {{3, 7}, {
                     {3, 5},
                     {4, 7},
                 }},
        {{5, 7}, {
                     {4, 7},
                     {1, 7},
                 }},
        {{2, 7}, {
                     {4, 7},
                     {1, 7},
                 }},
        {{2, 5}, {
                     {3, 4},
                     {3, 5},
                 }},
    };
}

inline void reset_syntax_mbm(int layer_idx) {
    dones[layer_idx] = false; // 设置标志，表示数据已被修改
    mtxs[layer_idx] = std::make_unique<std::mutex>();
    cvs[layer_idx] = std::make_unique<std::condition_variable>();
    locks[layer_idx] = std::unique_lock<std::mutex>(*mtxs[layer_idx]);
}

inline void minicpmmoe_mbm_init(int num_hidden_layers) {
    init_mbm_maps();
    mtxs.resize(num_hidden_layers);
    cvs.resize(num_hidden_layers);
    dones.resize(num_hidden_layers, 0);
    locks.resize(num_hidden_layers);
    for (int i = 0; i < num_hidden_layers; i++) {
        mtxs[i] = std::make_unique<std::mutex>();
        cvs[i] = std::make_unique<std::condition_variable>();
        locks[i] = std::unique_lock<std::mutex>(*mtxs[i]);
    }
    mbm_v.resize(num_hidden_layers);
    for (int i = 0; i < num_hidden_layers; ++i) {
        mbm_v[i] = vector<int>();
        // for (int j = 0; j < 4; ++j) {
        //     mbm_stack[i].push(0);
        // }
    }
}

#endif // MAP_MINICPMMOE_MBM_HPP